package com.atguigu.gulimall.ware.service;

import com.atguigu.gulimall.ware.vo.MergeVo;
import com.atguigu.gulimall.ware.vo.PurchaseDoneVo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.atguigu.common.utils.PageUtils;
import com.atguigu.gulimall.ware.entity.PurchaseEntity;

import java.util.List;
import java.util.Map;

/**
 * 采购信息
 *
 * @author DuGuanghan
 * @since 2024-03-05 10:12:23
 */
public interface PurchaseService extends IService<PurchaseEntity> {

    /**
     * 分页查询
     *
     * @param params 参数
     * @return {@link PageUtils }
     * @author DuGuanghan
     * @since 2024-03-05 10:12:07
     */
    PageUtils queryPage(Map<String, Object> params);

    /**
     * 查询未领取的采购单
     *
     * @param params 参数
     * @return {@link PageUtils }
     * @author DuGuanghan
     * @since 2024-03-05 14:34:24
     */
    PageUtils queryPageUnreceiveList(Map<String, Object> params);

    /**
     * 合并采购需求
     *
     * @param mergeVo 合并采购需求视图
     * @author DuGuanghan
     * @since 2024-03-05 15:59:51
     */
    void mergePurchase(MergeVo mergeVo);

    /**
     * 领取采购单
     *
     * @param purchaseIds 采购单ID
     * @author DuGuanghan
     * @since 2024-03-05 17:00:44
     */
    void received(List<Long> purchaseIds);

    /**
     * 完成采购
     *
     * @param purchaseDoneVo 完成采购单视图
     * @author DuGuanghan
     * @since 2024-03-14 10:40:04
     */
    void done(PurchaseDoneVo purchaseDoneVo);
}

